package com.hmsm.sys.service;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.hmsm.server.base.BaseService;
import com.hmsm.server.util.QueryResult;
import com.hmsm.server.util.Util;
import com.hmsm.sys.dao.LogInfoDao;
import com.hmsm.sys.po.LogInfo;
import com.hmsm.sys.po.RoleInfo;
import com.hmsm.sys.po.UserInfo;

@Service
public class LogInfoService extends BaseService<LogInfo, Integer, UserInfo, RoleInfo> implements ILogInfoService<LogInfo>{

	public LogInfoDao getLogInfoDao() {
		return (LogInfoDao) baseDao;
	}

	@Resource
	public void setLogInfoDao(LogInfoDao logInfoDao) {
		this.baseDao = logInfoDao;
	}

	/**
	 * 
	 *  @描述:保存日志
	 *  @方法名称:save
	 *  @作者:yaosq
	 *  @创建日期:2014-4-1 下午02:44:52 
	 *  @param userId
	 *  @param userName
	 *  @param type 0.系统错误 1.系统管理员登录 2.用户登录 3.公司用户操作日志 4.介绍信操作日志
	 *  @param remark
	 * @throws Exception 
	 *
	 */
	@Override
	public void save(Integer userId, String userName, String remark) throws Exception {
		LogInfo log = new LogInfo();
		Util u = new Util();
		log.setCreateDate(u.dateToTimestamp(new Date()));
		log.setUserId(userId);
		log.setUserName(userName);
		log.setType(0);
		log.setRemark(remark);
		this.save(log);
	}

	/**
	 * 
	 *  @描述:保存日志
	 *  @方法名称:save
	 *  @作者:yaosq
	 *  @创建日期:2014-4-1 下午02:44:52 
	 *  @param userId
	 *  @param userName
	 *  @param type 0.系统错误 1.系统管理员登录 2.用户登录 3.公司用户操作日志 4.介绍信操作日志
	 *  @param remark
	 * @throws Exception 
	 *
	 */
	@Override
	public void save(Integer userId, String userName, Integer type, String remark) throws Exception {
		LogInfo log = new LogInfo();
		Util u = new Util();
		log.setCreateDate(u.dateToTimestamp(new Date()));
		log.setUserId(userId);
		log.setUserName(userName);
		log.setType(type);
		log.setRemark(remark);
		this.save(log);
	}
	
	/**
	 * 分页获取日志
	 * @param index 当前页
	 * @param maxresult 每页记录条数
	 * @return
	 * @author 何杰
	 */
	public QueryResult<LogInfo> getLogInfoList(Integer index, Integer maxresult, Integer totalPage, Date beginTime, Date endTime, Integer type, String userName, Integer count){
		if (index == null || maxresult == null || totalPage == null) {
			return null;
		}
		if (index<=0) {
			index = 1;
		}
		if(index>=totalPage){
			index = totalPage;
			if (index==0) {
				index=1;
			}
		}
		QueryResult<LogInfo> list = new QueryResult<LogInfo>();
		list.setResultlist(getLogInfoDao().getInfoList(beginTime, endTime, type, userName, index, maxresult));
		list.setAllPages(totalPage);
		list.setNowPageNumber(index);
		list.setNowViewRecordNumber(list.getResultlist().size());
		list.setPerPageNumber(maxresult);
		list.setTotalrecord(count);
		return list;
	}
	
	/**
	 * 获得日志记录条数
	 * @return 
	 * @author 何杰
	 */
	public int getLogInfoCount(Date beginTime,Date endTime,String userName, Integer type){
		return getLogInfoDao().getLogInfoCount(beginTime, endTime, userName, type);
	}
	
}
